\section{Discusión}

\subsection{Acerca de los resultados}

Como puede verse en la sección anterior para algunas de las imágenes exibimos el campo normal y esto a su vez es 
utilizado luego para calcular las profundidades.

A simple vista los resultados para estas imágenes son satisfactorios teniendo en cuenta que el relieve de las figuras  
tiene un sentido, por ejemplo en la figura \ref{graficoEsfera} puede verse calramente que la profundidad se corresponde
con la forma de la figura.

A su vez en figura \ref{graficoGato} puede verse como la parte correspondiente a las orejas tiene un relieve menor a la cara y cuerpo
dándole la forma.

En todas las figuras correpondientes a los campos normales, hay fragmentos donde las normales están
 apuntando hacia arriba, esto se debe a que el recorte es rectangular y no exacto, povocando que haya partes de fondo negro
aún en la imágen recortada, se podría subsanar con un recorte exacto par cada imágen pero su implementación
sería mucho mas dificultosa.

Para remediar este problema podemos ver las figuras \ref{graficoEsferaNormalR2},\ref{graficoGatoNormalR2},\ref{graficoCaballoNormalR2},
que no tiene la componente z de cada vector normal.




\subsection{Imperfecciones}

Si bien los resultados son satisfactorios pueden verse ciertas imperfecciones en la reconstrucción final.
\begin{itemize}
 \item En la figura \ref{graficoEsfera} puede verse un doblez en la parte de afuera, sin mencionar que no es una esfera perfecta.
 \item En la figura \ref{graficoGato} puede verse una similitud en las profundidades de la zona del cuerpo, no obstante esto no impide
diferenciar la figura.

\end{itemize}

Creemos que los factores relevantes  en imperfecciones del resultado final pueden deberse a:

\begin{itemize}
 \item Precisión en la resolucion de sistemas de ecuaciones de la clase \textbf{sistema.cpp}, que es utilizado para el campo normal.
 \item Arrastre de errores en los resultados de campo normal a reconstrucción de la imágen.
 \item La aritmética finita de la computadora, o el uso de la clase \textbf{double} en lugar de \textbf{long double}.
  \item Impresición en el cálculo de los puntos de mayor intensidad.
\end{itemize}

\subsection{Dificultades}
En esta sección comentaremos algunas de las dificultades que tuvimos y no se mencionan en la etapa de dasarrollo.
Durante la etapa de desarrollo, se tuvieron muchas dificultades, sobre todo en cuanto al rendimiento en tiempo del cálculo del campo normal.

La primer dificultad que tuvimos, fue la elección de una estructura conveniente para ahorrar memoria(para representar la matriz esparza).

En un principio teniamos una lista de triplas $<$ fila, columna, valor $>$, pero la implementación de los algoritmos, era dificultosa y
la performance de los mismos era muy mala en cuestiones de tiempo, sin mencionar los dificultoso del depurado. Esto nos llevó finalmente
a la estructura actual, que se mencionó en la sección \textbf{Desarrollo}.

A todo esto las dimensiones de la imágenes eran tan grandes que afectaban la performance en un sentido práctico, a pesar que la
complejidad teórica era la misma, decidimos hacer recortes a las imágenes y los resultados fueron realmente muy satisfactorios.
Este cambio ahorró mucho tiempo de computo y nos facilitó el depurado del código. 

Otra complicación que surgió fue la estabilidad del algoritmo de eliminación gaussinana, creimos que la aparición de ceros en la diagonal 
o elementos chicos podría haber sido un problema,y se pensó resolverlo durante la etapa de dasarrollo, no obstante después pudimos
corrobrar que en ningún caso hacía falta, y se terminó descartando esta opción.

Al tener estructuras redundantes para una misma matriz reestablecer los invariante insumió un costo tanto de desarrollo como de performance,
no obstante fue necesario hacerlo, para mantener los invariantes y coherencia en las estructuras. 
